#ifndef ISO_SPRITE_H
#define ISO_SPRITE_H

#include "bn_fixed_point.h"
#include "bn_fixed_rect.h"
#include "bn_sprite_actions.h"

class sprite
{
    protected:
        bn::sprite_ptr spritePtr;
        int currentPosX, currentPosY;

    public:
        sprite(const int posX, const int posY, const bn::sprite_item& spriteItem);
        ~sprite() = default;

        void setX(const int x);
        void setX(const bn::fixed& x);
        void setY(const int y);
        void setY(const bn::fixed& y);
        void setZOrder(const int z);

        int getX();
        int getY();
        int getZOrder();
        bn::fixed_point getCurrentCoords();

        bn::sprite_ptr& getSpritePtr();

        virtual void draw() = 0;
        virtual void update() = 0;
};

#endif // ISO_SPRITE_H
